   // 先设定参数

    // 默认 显示 第一页 内容
    let page = 1;
    // 默认 每页 显示 8 条数据
    let line = 8;
    // 获取浏览器地址栏数据对象
    let obj = myGetUrlValObj();
    console.log( obj );

    // 第一次调用函数生成页面 内容为 第一页的内容
    setPage();

    // 将 发送 请求 动态渲染生成页面 定义成一个 完整的大函数
    function setPage(){
      // 向 后端程序发送 ajax请求
      const xhr = myPromiseJQueryAjax( "http://localhost/server/good_list.php" , 'get' , {
        cat_one_id: obj.cat_one_id,
        page:page,
        // // 对象的简写语法,键名和键值的变量 名称相同 写一个就行了
        line,
      } , 'json' );
      xhr.then(function(res){
        console.log(res);

        // 根据 响应体结果 动态渲染生成 页面
        let str = '';
        res.data.forEach(function(item){
          str += `
          <li class="list-item">
              
                <div class="row" style="width: 267px;height:365px;float: left;">
                  <div class="">
                    <div class="thumbnail lis_pro">
                      <img src="${item.goods_big_logo}" alt="...">
                      <div class="caption lis_info">
                        <h3>${item.goods_name}</h3>
                        <p class="lis_jia">
                          <i class="glyphicon glyphicon-yen"></i>
                          <span class="lis_jia">${item.goods_price}</span>
                        </p>
                        <p>
                          <a href="javascript:;" class="btn btn-primary" role="button">查找相似商品</a> 
                          <a href="../s_details.html?goods_id=${item.goods_id}" class="btn btn-danger" role="button">查看商品详情</a>
                        </p>
                      </div>
                    </div>
                  </div>
                </div>
          </li>
          `;
        })

        $('.container ul').html(str);
// ````````````````````````````````````````````````````````````
        // 插件分页器内容定义
        ; (function (factory) {
          if (typeof define === "function" && (define.amd || define.cmd) && !jQuery) { define(["jquery"], factory); } else if (typeof module === 'object' && module.exports) {
          module.exports = function (root, jQuery) {
              if (jQuery === undefined) { if (typeof window !== 'undefined') { jQuery = require('jquery'); } else { jQuery = require('jquery')(root); } }
              factory(jQuery); return jQuery;
          };
          } else { factory(jQuery); }
      }(function ($) {
          var defaults = { 
              totalData: 0, 
              showData: 0, 
              pageCount: 9, 
              current: 1, 
              prevCls: 'prev', 
              nextCls: 'next', 
              prevContent: '<', 
              nextContent: '>', 
              activeCls: 'active', 
              coping: false, isHide: false, homePage: '', 
              endPage: '', keepShowPN: false, mode: 'unfixed', 
              count: 4, jump: false, jumpIptCls: 'jump-ipt', 
              jumpBtnCls: 'jump-btn', jumpBtn: '跳转', 
              callback: function () { } 
          }; var Pagination = function (element, options) {
              var opts = options, current, $document = $(document), $obj = $(element); this.setPageCount = function (page) { return opts.pageCount = page; }; this.getPageCount = function () { return opts.totalData && opts.showData ? Math.ceil(parseInt(opts.totalData) / opts.showData) : opts.pageCount; }; this.getCurrent = function () { return current; }; this.filling = function (index) {
                  var html = ''; current = parseInt(index) || parseInt(opts.current); var pageCount = this.getPageCount(); switch (opts.mode) {
                      case 'fixed': html += '<a href="javascript:;" class="' + opts.prevCls + '">' + opts.prevContent + '</a>'; if (opts.coping) { var home = opts.coping && opts.homePage ? opts.homePage : '1'; html += '<a href="javascript:;" data-page="1">' + home + '</a>'; }
                          var start = current > opts.count - 1 ? current + opts.count - 1 > pageCount ? current - (opts.count - (pageCount - current)) : current - 2 : 1; var end = current + opts.count - 1 > pageCount ? pageCount : start + opts.count; for (; start <= end; start++) { if (start != current) { html += '<a href="javascript:;" data-page="' + start + '">' + start + '</a>'; } else { html += '<span class="' + opts.activeCls + '">' + start + '</span>'; } }
                          if (opts.coping) { var _end = opts.coping && opts.endPage ? opts.endPage : pageCount; html += '<a href="javascript:;" data-page="' + pageCount + '">' + _end + '</a>'; }
                          html += '<a href="javascript:;" class="' + opts.nextCls + '">' + opts.nextContent + '</a>'; break; case 'unfixed': if (opts.keepShowPN || current > 1) { html += '<a href="javascript:;" class="' + opts.prevCls + '">' + opts.prevContent + '</a>'; } else { if (opts.keepShowPN == false) { $obj.find('.' + opts.prevCls) && $obj.find('.' + opts.prevCls).remove(); } }
                          if (current >= opts.count + 2 && current != 1 && pageCount != opts.count) { var home = opts.coping && opts.homePage ? opts.homePage : '1'; html += opts.coping ? '<a href="javascript:;" data-page="1">' + home + '</a><span>...</span>' : ''; }
                          var start = (current - opts.count) <= 1 ? 1 : (current - opts.count); var end = (current + opts.count) >= pageCount ? pageCount : (current + opts.count); for (; start <= end; start++) { if (start <= pageCount && start >= 1) { if (start != current) { html += '<a href="javascript:;" data-page="' + start + '">' + start + '</a>'; } else { html += '<span class="' + opts.activeCls + '">' + start + '</span>'; } } }
                          if (current + opts.count < pageCount && current >= 1 && pageCount > opts.count) { var end = opts.coping && opts.endPage ? opts.endPage : pageCount; html += opts.coping ? '<span>...</span><a href="javascript:;" data-page="' + pageCount + '">' + end + '</a>' : ''; }
                          if (opts.keepShowPN || current < pageCount) { html += '<a href="javascript:;" class="' + opts.nextCls + '">' + opts.nextContent + '</a>'; } else { if (opts.keepShowPN == false) { $obj.find('.' + opts.nextCls) && $obj.find('.' + opts.nextCls).remove(); } }
                          break; case 'easy': break; default:
                  }
                  html += opts.jump ? '<input type="text" class="' + opts.jumpIptCls + '"><a href="javascript:;" class="' + opts.jumpBtnCls + '">' + opts.jumpBtn + '</a>' : ''; $obj.empty().html(html);
              }; this.eventBind = function () {
                  var that = this; var pageCount = that.getPageCount(); var index = 1; $obj.off().on('click', 'a', function () {
                      if ($(this).hasClass(opts.nextCls)) { if ($obj.find('.' + opts.activeCls).text() >= pageCount) { $(this).addClass('disabled'); return false; } else { index = parseInt($obj.find('.' + opts.activeCls).text()) + 1; } } else if ($(this).hasClass(opts.prevCls)) { if ($obj.find('.' + opts.activeCls).text() <= 1) { $(this).addClass('disabled'); return false; } else { index = parseInt($obj.find('.' + opts.activeCls).text()) - 1; } } else if ($(this).hasClass(opts.jumpBtnCls)) { if ($obj.find('.' + opts.jumpIptCls).val() !== '') { index = parseInt($obj.find('.' + opts.jumpIptCls).val()); } else { return; } } else { index = parseInt($(this).data('page')); }
                      that.filling(index); typeof opts.callback === 'function' && opts.callback(that);
                  }); $obj.on('input propertychange', '.' + opts.jumpIptCls, function () { var $this = $(this); var val = $this.val(); var reg = /[^\d]/g; if (reg.test(val)) $this.val(val.replace(reg, '')); (parseInt(val) > pageCount) && $this.val(pageCount); if (parseInt(val) === 0) $this.val(1); }); $document.keydown(function (e) { if (e.keyCode == 13 && $obj.find('.' + opts.jumpIptCls).val()) { var index = parseInt($obj.find('.' + opts.jumpIptCls).val()); that.filling(index); typeof opts.callback === 'function' && opts.callback(that); } });
              }; this.init = function () { this.filling(opts.current); this.eventBind(); if (opts.isHide && this.getPageCount() == '1' || this.getPageCount() == '0') { $obj.hide(); } else { $obj.show(); } }; this.init();
          }; $.fn.pagination = function (parameter, callback) {
              if (typeof parameter == 'function') { callback = parameter; parameter = {}; } else { parameter = parameter || {}; callback = callback || function () { }; }
              var options = $.extend({}, defaults, parameter); return this.each(function () { var pagination = new Pagination(this, options); callback(pagination); });
          };
      }));
      
  //  ````````````````````````````````````````````


        // 将 分页插件程序 直接定义在 响应体程序中
        // 分页插件功能
        $('.box_a').pagination({
          pageCount: res.sumPage,       // 总页数
          totalData: res.row,           // 数据总数量
          current: res.page,            // 当前第几页
          showData: res.line,           // 每页数据数量
          prevCls:'prev',               // 上一页类名
          nextCls:'next',               // 下一页类名
          prevContent: '上一页',         // 上一页内容
          nextContent: '下一页',         // 下一页内容
          activeCls: 'active',           // 选中页 class类名
          mode: 'fixed',                 // 显示分页按钮 为 固定模式状态
          count: 4,                      // 分页按钮 显示的数量 不算 选中页 也就是 设定4 一共显示 5个按钮
          coping: true,                  // 显示 首页 末页
          homePage: '首页',              // 设定首页内容
          endPage: '末页',               // 设定末页内容
          isHide: true,                  // 总页数 为 0 或者 1 隐藏 分页控件
          keepShowPN: true,              // 显示 上一页 下一页 
          jump: true,                    // 开启 跳转
          callback:function(result){     // 执行的回调函数 必须要有一个参数
            // 参数.getCurrent() 获取分页插件 点击之后 对应的页数
            console.log( result.getCurrent()  );

            // 将结果 赋值给 page 变量 存储
            page = result.getCurrent();

            // 根据新的 page 数据 再次发送请求 动态渲染生成新的页面
            setPage()
          }
        });

      })

    }


   



     // 退出登录
     $('[name="logout"]').click(function(){
      // 先获取 cookie 对象
      const cookieObj = myGetCookie();


      if( cookieObj.login === '1' ){
        // 证明已经登录

        // 设定 login的时效是 负数 直接就是 时效过期
        // 浏览器自动删除这个 cookie
        mySetCookie( 'login' , 0 , -1 , '/' );
          
        $('.m_login_cg').css('display','none')
        window.alert('您已经退出登录了');


      }else{
        // 还没有登录
        window.alert('您还没有登录,请您先登录');
      }
    });
